﻿
#region using declarations

#endregion

namespace Mitosoft.Definitions.General
{
  /// <summary>
  /// Method called when IsHidden was changed.
  /// </summary>
  /// <param name="newIsHiddenValue">Represents the value of the property IsHidden.</param>
  /// <param name="source">Represents the object where IsHidden changed.</param>
  public delegate void IsHiddenChangedDelegate(bool newIsHiddenValue, object source);
  
  public interface IHideable
  {
    /// <summary>
    /// Gets or sets whether the object is hidden.
    /// </summary>
    bool IsHidden { get; set; }

    /// <summary>
    /// Occurs when the value of <see cref="IsHidden"/> changed.
    /// </summary>
    event IsHiddenChangedDelegate IsHiddenChanged;

  }
}
